1. Field of the Invention
The present invention relates to a graphical user interface, and deals more particularly with a method and apparatus for integrating procedural user interfaces and object-oriented user interfaces. This integration enables the useful features and advantages of task wizards to be available to a user of an object-oriented user interface, and vice versa.
2. Description of the Related Art
Computer users have become accustomed to using computer software applications which present information through a graphical user interface ("GUI"). GUIs typically include windows, buttons, and other graphical elements, in contrast to the text-only interfaces that preceded them. A graphical user interface may alternatively be referred to as an object-oriented user interface ("OOUI"), reflecting the fact that the user of this type of interface interacts with objects, which are visibly displayed using a graphical representation. Typical graphical object representations include icons to represent application programs or files, and container folders (where a folder is also an icon) to represent collections of other objects. Users of this type of interface typically interact with the underlying software application by moving a pointing cursor over an object using, for example, a mouse or similar pointing device such as a light pen, and then indicating (for example, by clicking a mouse button or pressing the light pen) that the object should be selected. Alternatively, a touch-sensitive display screen can be used. In that situation, the user interacts with the software application by touching the object he wishes to select.
The programmer writing a software application having an object-oriented user interface defines the physical layout of the graphical objects on the user interface screen, as well as the functioning of the objects and any logical relationships among those objects. The function represented by an object can be as simple as setting the value of a variable used by the software application, or it can represent a more complex function such as initiating the execution of a software subroutine, or any other function desired by the programmer.
Some tasks to be performed by a software user are procedural in nature. That is, the task can be broken down into logical subtasks, which are performed in some sequence. The steps of the sequence, and the relationship between the steps, are important. The introduction of "wizards" (also known as "task guides") has facilitated completion of procedural tasks in software products. A wizard is a procedurally-oriented process (typically using a textual, as opposed to object-oriented, user interface), provided as part of a software application, that guides a user through the steps of a particular procedure or task. Wizards are typically used to perform goal-oriented tasks that are performed infrequently, and that require a long and often-complicated sequence of well-defined steps. Examples of this type of task are administrative functions, such as configuration and installation. Initial configuration of a computer network, for example, involves defining the physical objects of the network, the characteristics of each object, and the links or routes between objects (including the characteristics of the links). A configuration wizard will guide the user through answering the myriad of questions required for this process.
For routine, day-to-day operations, however, an object-oriented interface is provided, and wizards are not typically available. This separation of interfaces--object-oriented for "normal" operations, and wizard-based for infrequent, complicated operations--leads to a number of disadvantages for the user. The advantages of object-based interfaces, with their easy and direct object selection and manipulation capability, are not available in the step-by-step wizard interface. The advantages of the wizard interface, providing guidance and progress feedback while performing an operation, are not available in object-based interfaces. Further, the requirement of using two completely different interfaces at different times, for the same software application, is confusing to users and limits their ability to easily learn how to use the software. That is, when the user sees a prompting, wizard interface during creation of objects, this helps him to learn about the object's properties, relationships to other objects, and relationships between properties. When this same user comes back to the same objects at a later time (for example to modify the properties of an object), the guidance is no longer available; questions required for setting properties may be presented in a different order, or using different phrasing; etc.--which makes it very difficult to transfer what was learned from the wizard interface for use with the object interface.
Accordingly, a need exists for a technique by which procedural and object-oriented interfaces can be integrated, making available the advantages of each. This integration makes the underlying software application easier to use, because the user only needs to learn one interface. The proposed technique provides an object interface that is incrementally built as the user interacts with a wizard, which is referred to herein as a "graphical canvas". When the user later wants to modify properties of the objects created with the wizard, the same graphical canvas is displayed. Objects can be selected from this graphical canvas, causing their properties to be displayed--in the same manner in which the user saw them during the creation process. The guidance of the wizard is available for making changes to the object properties.